// pages/messages/messages.js
let util = require("../../utils/util.js");
let baseImgUrl = util.baseImgUrl;
const app = getApp();

let logoUrl = util.imgUrl + "kandianlogo.png";
let morenLogo = util.imgUrl + "logo.png";//用户头像，没有时用
var ewmPic = util.erweima;//二维码图片

Page({

  /**
   * 页面的初始数据
   */
  data: {
    networkStatus: true,
    loadingStatus: false,//默认加载完成，true--正在加载中
    loadgif: util.imgUrl + "loading.gif",//加载gif图
    loading: util.imgUrl + "loading.png",
    none_network: util.imgUrl + "none_network.png",

    alarmSrc: baseImgUrl+"alarm.png",
    newstopSrc: baseImgUrl+"newstop.png",
    newsbottomSrc: baseImgUrl+"newsbottom.png",
    menushow: false,//是否显示分享选择框.默认为隐藏
    weixin_l: baseImgUrl +"weixin_l.png",
    friend_l: baseImgUrl +"friend_l.png",

    picurl: util.imgUrl+"moren_bg.jpg",//生成海报的背景图，实际为当前页面第一个新闻的图
    newstitle:"同城看点，每日资讯早知道",//测试数据，实际为消息的标题
    authorName:"同城看点",//测试数据，实际为消息的作者名
    avatar: util.imgUrl+"userlogo.png",//测试图片，实际为作者的头像
    shut2:baseImgUrl+"shut2.png",
    
    newslist:[{
      id:0,
      date:"2018年10月12日 15:00",
      subnewslist:[{
        id:"01",
        newsSrc: baseImgUrl+"pic0.png",
        newsTitle:"随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
      }, {
          id: "02",
          newsSrc: baseImgUrl + "ceshi.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }, {
          id: "03",
          newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }, {
          id: "04",
          newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }]
    }, {
        id: 0,
        date: "2018年10月12日 15:00",
        subnewslist: [{
          id: "01",
          newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }, {
          id: "02",
            newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }, {
          id: "03",
            newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }, {
          id: "04",
            newsSrc: baseImgUrl + "pic0.png",
          newsTitle: "随着小程序生态的逐渐形成，小程序越来越多的出现在万千百姓的生活中，日活用户量高达两亿。门槛低、更易学"
        }]
      }],
    picurl: util.imgUrl + "moren_bg.jpg",
    mineavatarUrl: "",
    isshare: 0,//是否是分享进入。默认0，不是
    checkStatus:false,//switch是否选中
    checkUrl:baseImgUrl+"cl.png"
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this;
  
    that.setData({
      loadingStatus: true
    })

    //可以在页面 onLoad 中去获取页面 url 中的参数( 下面 onShareAppMessage 函数中配置)
    if (options.isshare == 1) {
      console.log('是分享进入');
      this.setData({
        isshare: options.isshare
      })
    }
    
    /*****网络判断**********/
    wx.getNetworkType({
      success: function (res) {
        console.log(res);
        var networkType = res.networkType;
        if (networkType == "none" || networkType == "unknown") {
          that.setData({
            networkStatus: false
          })
        } else {
          that.setData({
            networkStatus: true,

          })
        }
      }, fail: function (err) {
        console.log("获取网络失败" + err);
        that.setData({
          networkStatus: false
        })
        
      }
    })

    //获取用户头像，存到缓存
    if (app.globalData.userInfo) {
      var mineavatarUrl = app.globalData.userInfo.avatarUrl;
      wx.downloadFile({
        url: app.globalData.userInfo.avatarUrl,
        success: function (res) {

          that.setData({
            mineavatarUrl: res.tempFilePath,
          })
          that.data.mineavatarUrl = res.tempFilePath;
          console.log("我的头像图片");
          console.log(that.data.mineavatarUrl);
        }, fail: function (fres) {
          console.log("我的头像图片存缓存失败");
        }
      })
    } else {
      that.setData({
        mineavatarUrl: morenLogo
      })
    }
   
    wx.request({
      url: util.myxiaoxi,
      data: {
      },
      method: "POST",
      header: {
        "Content-Type": "application/x-www-form-urlencoded" //post
      },
      success: function (res) {
        console.log("-----------------------------同城活动--------------------");
        console.log(res);
        var picurl;
        if (res.picurl) {
          picurl = res.picurl;

          wx.downloadFile({
            url: res.picurl,
            success: function (res) {

              that.setData({
                picurl: res.tempFilePath,
              })
              that.data.picurl = res.tempFilePath;
              picurl = res.tempFilePath;
              console.log("**************res.tempFilePath************");
              console.log(res.tempFilePath);
            }, fail: function (fres) {
              console.log("存缓存失败");
            }
          })
        } else {
          picurl = util.imgUrl + "moren_bg.jpg";

        }
        that.setData({
          newslist: res.data.newslist,
          loadingStatus: false
        })
      },
      fail: function (err) {
        console.log("err" + err);
        that.setData({
          loadingStatus: true
        })
      }
    })
  },
  /**************是否开启提醒****************** */
  switchChange:function(e){
    var that=this;
    console.log(e);
    var value=e.detail.value;//是否开启提醒的标志，true-是开启
    console.log(value);
   
  },

  //跳转至新闻页面
  newsdetail: function (e) {
    
    var that = this;
    var thisid = e.currentTarget.dataset.id;
  
    wx.navigateTo({
      url: '/pages/detail/detail?newid=' + thisid,
    })
  },

  // 表单提交
  formSubmit(e) {
    var that=this;
    let formId = e.detail.formId;
   console.log(e);
    var checkstatus = e.detail.target.dataset.checkstatus;
   
    if (checkstatus){
      that.setData({
        checkStatus: false,
        checkUrl:baseImgUrl+"cl.png"
      })
      formId="";
    }else{
      that.setData({
        checkStatus: true,
        checkUrl: baseImgUrl + "op.png"
      })
      app.globalData.globalFormId=formId;
     
    }
    that.collectFormIds(formId);  //保存推送码
    that.uploadFormIds(formId);  //上传推送码
    console.log('form发生了submit事件，携带数据为：', e.detail.value)
    console.log("formId", formId);

  },


  //保存推送码
  collectFormIds: function (formId) {
    let globalFormId = app.globalData.globalFormId;  // 获取全局推送码数组
    //重置globalFormId
    globalFormId = formId;
    app.globalData.globalFormId = globalFormId;
    console.log("=============app.globalData.gloabalFomId==============");
    console.log(app.globalData.gloabalFomId);
  },

  //上传推送码
  uploadFormIds: function (formId) {
    var globalFormId = app.globalData.globalFormId;  // 获取全局推送码
    console.log("========================");
    console.log(globalFormId);
    // if (globalFormId.length>0) {
    //   globalFormId = JSON.stringify(globalFormId);  // 转换成JSON字符串
    //   app.globalData.gloabalFomIds = '';  // 清空当前全局推送码
    // }
    // wx.request({  // 发送到服务器
    //   url: 'http://xxx',
    //   method: 'POST',
    //   data: {
    //     openId: 'openId',
    //     formIds: formIds
    //   },
    //   success: function (res) {
    //   }
    // });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    var that=this;
      console.log("---------------到底了-------------------");
      // 请求接口，获取数据
      // wx.request({
      //   url: '',
      // })

      //测试数据
      for(var i=0;i<3;i++){
        var newNewslist = that.data.newslist;
        var newslist = newNewslist.concat(newNewslist);
        that.setData({
          newslist: newNewslist
        })
      }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (options) {
    var that = this;
    var openid = app.globalData.openid;


    // 设置菜单中的转发按钮触发转发事件时的转发内容
    var shareObj = {
      title: "关注同城 看点生活", // 默认是小程序的名称(可以写slogan等)
      desc: "同城看点",
      path: '/pages/messages/messages?isshare=1', // 默认是当前页面，必须是以‘/’开头的完整路径
      imageUrl: '/pages/images/xiaoxiBg.jpg',//图片//图片路径，可以是本地文件路径、代码包文件路径或者网络图片路径，支持PNG及JPG，不传入 imageUrl 则使用默认截图。图片长宽比是 5:4
      success: function (res) {
        // 转发成功之后的回调
        console.log("转发成功")
      },
      fail: function (res) {
        // 转发失败之后的回调
        if (res.errMsg == 'shareAppMessage:fail cancel') {
          // 用户取消转发

          console.log(options.target.dataset.id)

        } else if (res.errMsg == 'shareAppMessage:fail') {
          // 转发失败，其中 detail message 为详细失败信息
        }
      },
      complete: function () {
        // 转发结束之后的回调（转发成不成功都会执行）
      }
    };
    // 来自页面内的按钮的转发
    if (options.from == 'button') {
      var eData = options.target.dataset;

      console.log(options);
      //  内容
      shareObj.path = '/pages/messages/messages?isshare=1';

      shareObj.imageUrl = "/pages/images/xiaoxiBg.jpg"

    }
    // 返回shareObj
    return shareObj;
  },
  
  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage: function () {
  //   var that = this;
    
  //   return {
  //     title: '',
  //     imagesUrl: "/pages/images/xiaoxiBg.jpg",
  //     path: '/pages/messages/messages?isshare=1' ,
  //     success: function (res) {
  //       // 转发成功
  //       console.log("================success");
        
  //     },
  //     fail: function (res) {
  //       // 转发失败
  //     }
  //   }
  // },
  /**
  * 回到首页(分享的时候)
  */
  backHome: function () {
    wx.reLaunch({
      url: '/pages/index/index'
    })
  },


  /********点击分享朋友圈 生成图片*************/
  haibao: function (e) {
    console.log(e);
    var that = this;

    this.setData({
      menushow: false,

    });
    wx.showToast({
      title: '正在生成海报...',
      icon: 'loading',
      duration: 1000
    });
    setTimeout(function () {
      wx.hideToast()
      that.createNewImg();
      that.setData({
        greyshow: true
      });
    }, 2000)
  },

  //将canvas转换为图片保存到本地，然后将图片路径传给image图片的src
  createNewImg: function () {
    var that = this;
    var context = wx.createCanvasContext('mycanvas');
    context.setFillStyle("#fff")
    context.fillRect(0, 0, 690, 750);
    // context.fillRect(10, imageTop, imageWidth, imageHeight)

    /***********图片路径********************/
    var pathurl = that.data.picurl;//分享图背景图

    //绘制上部图片
    context.drawImage(pathurl, 0, 0, 375, 420);


    //将模板图片绘制到canvas,在开发工具中drawImage()函数有问题，不显示图片

    var path2 = that.data.mineavatarUrl;//用户的头像图
    var path3 = util.imgUrl +"kandianlogo.png";//同城看点logo图
    var path4 = util.erweima;//二维码图片
    var path5 = util.imgUrl + "friendsPic.png";//分享朋友圈图片
    var pathline = util.imgUrl + "shortline.png";//直线
    var nickname = app.globalData.userInfo.nickName;//作者名

   
    //绘制logo
     context.drawImage(path3, 210, 150, 150, 40);

    //不知道是什么原因，手机环境能正常显示
    // context.save(); // 保存当前context的状态


    //绘制名字
    context.setFontSize(26);
    context.setFillStyle('#333333');
    context.setTextAlign('left');
    context.font = "weight";
    /**********文章标题********/
    var newstitle = that.data.newstitle;

    /**********换行**开始*******/
    var chr = newstitle.split("");//这个方法是将一个字符串分割成字符串数组
    var temp = "";
    var row = [];
    for (var a = 0; a < chr.length; a++) {
      if (context.measureText(temp).width < 345) {
        temp += chr[a];
      }
      else {
        a--; //这里添加了a-- 是为了防止字符丢失，效果图中有对比
        row.push(temp);
        temp = "";
      }
    }
    row.push(temp);

    //如果数组长度大于2 则截取前两个
    if (row.length > 2) {
      var rowCut = row.slice(0, 2);
      var rowPart = rowCut[1];
      var test = "";
      var empty = [];
      for (var a = 0; a < rowPart.length; a++) {
        if (context.measureText(test).width < 330) {
          test += rowPart[a];
        }
        else {
          break;
        }
      }
      empty.push(test);
      var group = empty[0] + "..."//这里只显示两行，超出的用...表示
      rowCut.splice(1, 1, group);
      row = rowCut;
    }
    for (var b = 0; b < row.length; b++) {
      context.fillText(row[b], 15, 460 + b * 40, 345);

    }
    context.stroke();

    //绘制直线
    context.drawImage(pathline, 15, 520, 345, 1, 82);
    context.setFillStyle('#efefef');
    context.stroke();

    //绘制左下角二维码
    context.drawImage(path4, 15, 530, 100, 120);
    context.setFillStyle('#efefef');
    context.stroke();

    //绘制右下角上侧文字
    context.setFontSize(14);
    context.setFillStyle('#333');
    context.setTextAlign('left');


    /**********用户名**开始*******/

    nickname = nickname.split("");//这个方法是将一个字符串分割成字符串数组
    var temp2 = "";
    var row2 = [];

    for (var a = 0; a < nickname.length; a++) {
      if (context.measureText(temp2).width < 70) {
        temp2 += nickname[a];
      }
      else {
        a--; //这里添加了a-- 是为了防止字符丢失
        row2.push(temp2);
        temp2 = "";
      }
    }
    row2.push(temp2);
    console.log("row2" + row2);

    //如果数组长度大于1 则截取第1个
    if (row2.length > 1) {
      var rowCut2 = row2.slice(0, 1);//第一条需要截取的字符
      console.log(rowCut2);
      var rowPart2 = rowCut2[0];
      console.log("rowPart2" + rowPart2)
      var test2 = "";
      var empty2 = [];
      for (var a = 0; a < rowPart2.length; a++) {
        if (context.measureText(test2).width < 60) {
          test2 += rowPart2[a];
        }
        else {
          break;
        }
      }
      empty2.push(test2);
      console.log(empty2);
      var group2 = empty2[0] + "..."//

      rowCut2.splice(0, 1, group2);


      context.fillText(rowCut2[0], 190, 570, 70);
    } else {
      context.fillText(row2, 190, 570, 70);
    }


    context.stroke();


    /*****************************************/
    context.setFontSize(14);
    context.setFillStyle('#666');
    context.setTextAlign('left');
    context.fillText("正在浏览文章", 270, 570, 164);
    context.stroke();

    //绘制右下角下侧文字
    context.setFontSize(14);
    context.setFillStyle('#666');
    context.setTextAlign('left');
    context.fillText("识别小程序，进入", 130, 630);
    context.stroke();

    context.setFontSize(14);
    context.setFillStyle('#ff1313');
    context.setTextAlign('left');
    context.fillText("同城看点", 241, 630);
    context.stroke();

    context.setFontSize(14);
    context.setFillStyle('#666');
    context.setTextAlign('left');
    context.fillText("浏览文章", 300, 630);
    context.stroke();

    //绘制右下角上侧logo图
    context.arc(155, 565, 25, 0, 2 * Math.PI) //画出圆
    context.strokeStyle = "#efefef";
    context.clip(); //裁剪上面的圆形

    context.drawImage(path2, 130, 540, 50, 50, 50, 50);
    context.setFillStyle('#efefef');
    context.stroke();
    context.stroke();

    context.draw();


    //将生成好的图片保存到本地，需要延迟一会，绘制期间耗时
    setTimeout(function () {
      wx.canvasToTempFilePath({
        x: 0,
        y: 133,
        width: 690,
        height: 750,
        destHeight: 750,
        destWidth: 690,
        canvasId: 'mycanvas',
        success: function (res) {
          var tempFilePath = res.tempFilePath;
          that.setData({
            imagePath: tempFilePath,
            canvasHidden: true
          });
          that.baocun();
        },
        fail: function (res) {
          console.log(res);
        }
      });
    }, 200);
  },

  //点击保存到相册
  baocun: function () {
    var that = this
    wx.saveImageToPhotosAlbum({
      filePath: that.data.imagePath,
      success(res) {
        console.log("图片保存成功")
        // wx.showModal({
        //   content: '图片已保存到相册，赶紧晒一下吧~',
        //   showCancel: false,
        //   confirmText: '好的',
        //   confirmColor: '#333',
        //   success: function (res) {
        //     if (res.confirm) {
        //       console.log('用户点击确定');
        //       /* 该隐藏的隐藏 */
        //       that.setData({
        //         maskHidden: false
        //       })
        //     }
        //   }, fail: function (res) {
        //     console.log(11111)
        //   }
        // })
      }
    })
  },

  //关闭分享图弹框
  shutgrey: function () {
    var that = this;
    that.setData({
      greyshow: false
    })
  },

  //显示分享选择菜单
  showchosemenu: function () {
    var that = this;
    that.setData({
      menushow: true
    })
  },

  //隐藏分享选择菜单
  hidechosemunu: function () {
    var that = this;
    that.setData({
      menushow: false
    })
  },
  //生成海报提示
  showLoading: function () {
    wx.showLoading({
      title: '正在生成海报',
    })
    setTimeout(function () {
      wx.hideLoading()
    }, 300)
  },

})

